package org.oos;

import java.util.logging.Logger;


/**
 * 
 * Provides with data to do testing on the {@link SiteProvider}s (
 * {@link SiteProviderImpl} and {@link SecureServiceProviderImpl})
 * 
 * @author pablo.gonzalez@11870.com
 * 
 */
public abstract class AbstractTestServiceProvider
{

    /**
     * Value used to build the {@link APPToken}
     */
    public static final String CORRECT_APP_TOKEN_VALUE = "69ecf9cd083929c9d70d1fbe6781c9b2";
    /**
     * Secret used to build the {@link APPToken}
     */
    public static final String CORRECT_APP_TOKEN_SECRET = "d10069ce9e959517534748dc0e560a95";
    /**
     * Value calculated using: 5dm(APP_TOKEN + SECRET)
     */
    public static final String AUTH_SIGN = "3b91d9a31361ee953d5bae752497d566";
    /**
     * Email assigned with the account, see SLUG.
     */
    public static final String USER_EMAIL = "pablo.gonzalez@11870.com";
    /**
     * This can be obtained by: <br>
     * http://11870.com/manage-api/create-token?appToken=[APP_TOKEN]&authSign=[
     * SECRET]&privilege=WRITE&returnUrl=[url]
     */
    public static final String USER_AUTH_TOKEN = "686899a0249d4be758b873c1317f8385";
//    /**
//     * Instance of a {@link APPToken} with CORRECT_APP_TOKEN_VALUE and
//     * CORRECT_APP_TOKEN_SECRET
//     */
//    public static final APPToken APP_TOKEN = new APPToken(
//	    CORRECT_APP_TOKEN_VALUE, CORRECT_APP_TOKEN_SECRET);
    /**
     * Instance of a {@link OOSCredentials} using USER_EMAIL and USER_AUTH_TOKEN
     */
//    public static final OOSCredentials CREDENTIALS = new OOSCredentials(
//	    USER_EMAIL, USER_AUTH_TOKEN);
    /**
     * This is the slug (uri path from 11870.com) for the mock implementation.
     */
    public static final String SLUG = "/dummy";
    /**
     * Instance of the {@link MockHandler} which is used to store the last
     * message sent to the {@link Logger} it handles.
     */
    public static final MockHandler mockHandler = new MockHandler();

    public abstract void testWarningOnShortSecret() throws Exception;

    public abstract void testWarningOnShortToken() throws Exception;

    public abstract void testNosecret() throws Exception;

    public abstract void testNoToken() throws Exception;

    public abstract void testNoDetails() throws Exception;

    public abstract void testCorrect() throws Exception;

    public abstract void testSetLogger() throws Exception;

}